home *** CD-ROM | disk | FTP | other *** search
/ Animation How-To / Animation How-to CD.iso / PLY / CHAPTER2 / BOLITA / BOLITA1.PI < prev    next >
Text File  |  1994-01-01  |  3KB  |  138 lines

  1. // BOLITA1.PI 
  2. // Bumping line o' balls
  3.  
  4. start_frame 0
  5. end_frame 179
  6. total_frames 180
  7.  
  8. outfile balls
  9.  
  10. include "\ply\colors.inc"
  11.  
  12. // Set up background color & lights
  13. background Navyblue
  14. light <10, 10, -20>
  15. light <-10, 10, -20>
  16. light <0, 20, 0>
  17.  
  18.  
  19. // Set up the camera
  20. viewpoint {
  21.    from <11, 15,-20>
  22.    at   <0, 4, 0>
  23.    up   <0, 1, 0>
  24.    angle 30
  25.    resolution 320,200
  26.    aspect 1.43
  27.    }
  28.  
  29. define pi 3.14159
  30. define rad pi / 180
  31.  
  32. if (frame==start_frame) {
  33.    static define t 0
  34.    static define moving 1
  35. }
  36.  
  37. define phz 30 * sin(t * rad)
  38. define ang 270 + phz
  39.  
  40. // ball 1
  41.  
  42.    if (phz > 0 && 1 > (5 - moving)) {
  43.       define x1 8 * cos(ang * rad) + 1 * 2 - 6
  44.       define y1 8 * sin(ang * rad) + 8
  45.    }
  46.    else {
  47.       define x1 1 * 2 - 6
  48.       define y1 0
  49.    }
  50.    
  51.    if (phz < 0 && 1 < (moving + 1)) {
  52.       define x1 8 * cos(ang * rad) + 1 * 2 - 6
  53.       define y1 8 * sin(ang * rad) + 8
  54.    }
  55.  
  56. // ball 2
  57.  
  58.    if (phz > 0 && 2 > (5 - moving)) {
  59.       define x2 8 * cos(ang * rad) + 2 * 2 - 6
  60.       define y2 8 * sin(ang * rad) + 8
  61.    }
  62.    else {
  63.       define x2 2 * 2 - 6
  64.       define y2 0
  65.    }
  66.    
  67.    if (phz < 0 && 2 < (moving + 1)) {
  68.       define x2 8 * cos(ang * rad) + 2 * 2 - 6
  69.       define y2 8 * sin(ang * rad) + 8
  70.    }
  71.    
  72. // ball 3
  73.  
  74.    if (phz > 0 && 3 > (5 - moving)) {
  75.       define x3 8 * cos(ang * rad) + 3 * 2 - 6
  76.       define y3 8 * sin(ang * rad) + 8
  77.    }
  78.    else {
  79.       define x3 3 * 2 - 6
  80.       define y3 0
  81.    }
  82.    
  83.    if (phz < 0 && 3 < (moving + 1)) {
  84.       define x3 8 * cos(ang * rad) + 3 * 2 - 6
  85.       define y3 8 * sin(ang * rad) + 8
  86.    }
  87.    
  88. // ball 4
  89.  
  90.    if (phz > 0 && 4 > (5 - moving)) {
  91.       define x4 8 * cos(ang * rad) + 4 * 2 - 6
  92.       define y4 8 * sin(ang * rad) + 8
  93.    }
  94.    else {
  95.       define x4 4 * 2 - 6
  96.       define y4 0
  97.    }
  98.    
  99.    if (phz < 0 && 4 < (moving + 1)) {
  100.       define x4 8 * cos(ang * rad) + 4 * 2 - 6
  101.       define y4 8 * sin(ang * rad) + 8
  102.    }
  103.    
  104. // ball 5
  105.    
  106.    if (phz > 0 && 5 > (5 - moving)) {
  107.       define x5 8 * cos(ang * rad) + 5 * 2 - 6
  108.       define y5 8 * sin(ang * rad) + 8
  109.    }
  110.    else {
  111.       define x5 5 * 2 - 6
  112.       define y5 0
  113.    }
  114.    
  115.    if (phz < 0 && 5 < (moving + 1)) {
  116.       define x5 8 * cos(ang * rad) + 5 * 2 - 6
  117.       define y5 8 * sin(ang * rad) + 8
  118.    }
  119.  
  120.    define z 0
  121.  
  122.    object { sphere <x1,y1,z>,1 shiny_blue }
  123.    object { sphere <x2,y2,z>,1 shiny_blue }
  124.    object { sphere <x3,y3,z>,1 shiny_blue }
  125.    object { sphere <x4,y4,z>,1 shiny_blue }
  126.    object { sphere <x5,y5,z>,1 shiny_blue }
  127.  
  128.    object { cylinder <x1,y1+1,z>,<1*2-6,8,0>,0.25 shiny_coral }
  129.    object { cylinder <x2,y2+1,z>,<2*2-6,8,0>,0.25 shiny_coral }
  130.    object { cylinder <x3,y3+1,z>,<3*2-6,8,0>,0.25 shiny_coral }
  131.    object { cylinder <x4,y4+1,z>,<4*2-6,8,0>,0.25 shiny_coral }
  132.    object { cylinder <x5,y5+1,z>,<5*2-6,8,0>,0.25 shiny_coral }
  133.  
  134.    static define t t+10
  135.    if (fmod(t,360)==0) static define moving moving+1
  136.  
  137.  
  138.